package mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 一、使用JDBC 连接 数据库Mysql
 *    1.maven 仓库下载对应MySQL 版本的jar包
 *    2.mysql服务器必须启动【WampServer；集成】
 *    3.加载数据库驱动【mysql】
 *    4.获取数据库连接【mysql-用户名 root【最高权限】，密码 空】
 *二、链接成功
 *    1.test 库  创建表 person 给3个字段  id、name、address
 *    2.静态sql增加
 *
 */
public class MysqlJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //3.加载驱动【注册驱动程序】
        //JDBC 规范标准 要求：连接对应数据库必须先注册‘驱动程序’
        // 告诉JDBC 现在连接什么种类的数据库
        //Class.forName()  通过反射加载对应数据库版本驱动类
        //对应数据库固定注册写法：Mysql
        Class.forName("com.mysql.jdbc.Driver");
        //4.获取mysql 数据库的连接
        String username="root";  // mysql 数据库用户名
         String password="";      // mysql 数据库密码
        //url链接地址：mysql 固定结构
        //jdbc：mysql：//ip地址：端口号/库名？characterEncoding=UTF-8
        String url="jdbc:mysql://localhost:3308/test?characterEncoding=UTF-8";
        //DriverManager 工具类 功能获取数据库链接：url 用户名和密码
        //getConnection 方法 链接不同版本数据库的方法
        Connection conn =
                DriverManager.getConnection(url,username,password);
        System.out.println("测试链接是否成功"+conn);

        //5.编写静态添加sql操作【字符串】
        String sql="insert into person values(2,'闫佳赛','邯郸')";
        //练习：增加3条数据 删除一条 修改一i条
        //String sql="delete from person where id=2";
        //String sql="update person set name='皮皮' where id=1";
        //6.执行静态sql【增加操作】
        //conn.createStatement(); 执行数据库中增 删 改操作 返回Statement();
        //Statement 对象执行静态sql
        //6.1具备执行数据库中增删改操作
        Statement st= conn.createStatement();
        //6.2执行静态sql：增删改操作 :st.executeUpdate(静态sql); 增删改操作 返回值 int类型
        // int类型帮助记录成功条数
        int rows=st.executeUpdate(sql);
        System.out.println("增加"+rows+"记录");
        //7.关闭资源
        st.close(); conn.close();
    }
}
/**
 *   昨天重点
 *   1.JDBC规范 链接各种数据库  数据库闭源
 *   2.maven 仓库下载jar包 --Java ---面向对象【类】
 *    mysql版本  5.5 mysqljdbc
 *    oracle版本 10g ojdbc8
 *   3.编程步骤--JDBC规范--核心逻辑开发者完成
 *    3.1 加载驱动 JDBC去链接数据库 每个数据库都有自己的驱动
 *    Class.forName("com.mysql.jdbc.Driver") 反射技术【固定结构】
 *    Mysql 版本5.X  驱动：com.mysql.jdbc.Driver
 *    Mysql 版本8.X  驱动：com.mysql.cj.jdbc.Driver
 *    Java-->JDBC标准规范-->Driver接口：驱动接口 各种数据库
 *    JDBC 承认写对应驱动接口【所有数据库承认接口 确定什么数据库】
 *    3.2获取链接 mysql数据库 用户名、密码、url 用字符串接收
 *    String username="root"; -- java写法
 *    String password="";
 *    url Mysql 连接路径 ---固定结构
 *    jdbc：mysql：//localhost：3306/mi?characterEncoding=UTF-8
 *    协议：子协议：//IP地址：端口号/库名?设置字符集
 *                   本机
 *                 127.0.0.1
 *     java获取链接--通过DriverManager接口：这个接口是工具类 其目的是帮助链接各种数据库
 *    Connection con= DriverManager.getConnection(url,username,password)
 *     具体连接方案给方法：getConnection() 地址、用户名、密码确认无误
 *     返回一个对象Connection 对象【Java与对应数据库连接成功】
 *     打印Connection对象--打印对象---连接成功
 *    4.JDBC 只能做CRUD增删改查--Mysql创建表、库
 *    4.1Mysql ---> 使用库--->创建表
 *    4.2java  JDBC--->CUR 增改删操作
 *    4.3java  ---> 确定数据库连接成功[con]--->调取执行增删改查操作
 *             --->返回Statement对象：可以帮执行静态sql
 *    代码：Statement st=con.createStatement();
 *    4.4java  --->Statement对象提供方法：executeUpdate()
 *             --->此方法之星sql：增删改操作---成功 几条记录
 *    代码：int rows=st.executeUpdate(sql);
 *    打桩：打印成功多少条记录
 *    5.关闭资源【倒置法：Statement-执行sql对象、Connection--链接数据库成功对象】
 *
 *
 *
 *
 *
 */

